package com.yami.shop.webservice.common.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yami.shop.bean.dto.SubScribeFundsPageDTO;
import com.yami.shop.bean.model.SubscribeFundsRecord;
import com.yami.shop.bean.vo.SubScribeFundsPageVo;
import com.yami.shop.common.bean.PageDTO;
import com.yami.shop.common.bean.PageVO;
import com.yami.shop.common.util.PageParam;

import java.util.List;

/**
 * 资金记录Service接口
 *
 * @author zhangchaoqun
 * @date 2021-10-13
 */
public interface FundsRecordService
{
    /**
     * 查询资金记录
     *
     * @param id 资金记录主键
     * @return 资金记录
     */
    public SubscribeFundsRecord selectFundsRecordById(String id);

    /**
     * 查询资金记录列表
     *
     * @param fundsRecord 资金记录
     * @return 资金记录集合
     */
    public List<SubscribeFundsRecord> selectFundsRecordList(SubscribeFundsRecord fundsRecord);

    /**
     * 新增资金记录
     *
     * @param fundsRecord 资金记录
     * @return 结果
     */
    public int insertFundsRecord(SubscribeFundsRecord fundsRecord);

    /**
     * 修改资金记录
     *
     * @param fundsRecord 资金记录
     * @return 结果
     */
    public int updateFundsRecord(SubscribeFundsRecord fundsRecord);

    /**
     * 批量删除资金记录
     *
     * @param ids 需要删除的资金记录主键集合
     * @return 结果
     */
    public int deleteFundsRecordByIds(String[] ids);

    /**
     * 删除资金记录信息
     *
     * @param id 资金记录主键
     * @return 结果
     */
    public int deleteFundsRecordById(String id);

    /**
     * 分页查询FundsRecord列表
     *
     * @param fundsRecord pageDTO
     * @return FundsRecord集合
     */
    public PageVO<SubscribeFundsRecord> page(PageDTO pageDTO, SubscribeFundsRecord fundsRecord);


    /**
     * 批量新增资金记录
     *
     * @param fundsRecord 资金记录
     * @return 结果
     */
    public int insertFundsRecordList(List<SubscribeFundsRecord> fundsRecord);

    /**
     * 提货包含划拨货款
     * @param orderId
     */
//    public void getGoods(Long orderId);

    /**
     * 退货包含退款货款
     * @param orderId
     */
//    public String refunds(Long orderId);

    /**
     * 分页查询FundsRecord列表
     *
     * @param fundsRecord pageDTO
     * @return FundsRecord集合
     */
    public PageVO<SubscribeFundsRecord> page1(PageDTO pageDTO, SubscribeFundsRecord fundsRecord);

    /**
     * 查询资金记录列表 有搜素总和条件
     *
     * @param fundsRecord 资金记录
     * @return 资金记录集合
     */
    public List<SubscribeFundsRecord> selectFundsRecordList1(SubscribeFundsRecord fundsRecord);

    /**
     * 资金列表分页
     * @param pageParam
     * @param dto
     * @return
     */
    IPage<SubScribeFundsPageVo> pageList(PageParam<SubscribeFundsRecord> pageParam, SubScribeFundsPageDTO dto);
}
